前段时间利用业余时间写了一本书,与其说是一本书,还不如说是好奇心驱使,又因为工作原因,完整梳理了一下如何使用大模型,从提示工程的角度去认识大模型。
在我看来,大模型在很多领域就像一个世外高人,而每个普通人都可以有拥有这样一个强有力的助手或导师,有了它,我们不必去记忆很多死记硬背的东西,在很多领域的入门导师,遇事第一时间去问问大模型是怎么回事,帮我们节省很多时间。
著名企业家和360集团创始人周鸿祎直言:“未来属于那些会正确使用GPT的人。”
然而,就算大模型这样的世外高人在身边,如果我们不知道如何提问,如何引导,同样也就无法用好它。基于这样的思考,我阅读了一些论文和参考资料,结合自己的思考,最主要是借助ChatGPT,完成了《提示工程:释放大语言模型的无限潜力》这一本书,并在亚马逊平台出版。
接下来会在本公众号进行连载,欢迎交流分享。

目 录
(1)数据处理和标注
为了训练一个高质量的大语言模型,数据处理处于相当重要的位置,对模型质量起到至关重要的作用。数据的处理主要包括数据收集、数据预处理和数据增强、数据集划分、数据打标签等工作。
首先,为了训练一个大语言模型(LLM),需要收集大量的文本数据,其通常是来自互联网或其他公开或私有的数据源。数据的数量、质量、多样性和代表性都会影响到LLM的性能和泛化能力。因此,在数据收集时,需要注意去除重复、无关、低质或有害的文本,以及平衡不同的领域、风格、主题和语言。
为了让LLM能够有效地处理文本数据,需要对数据进行一些预处理操作,例如分词、清洗、规范化、编码等。分词是将文本切分成最小的语义单位,例如字、词或子词等。清洗是去除文本中的噪音或无用的信息,例如标点符号、空格、HTML标签等。规范化是将文本中的不同形式或变体统一成标准形式,例如大小写、拼写、缩写等。编码是将文本转换成数值表示,例如one-hot编码、词嵌入等。
为了增加数据的多样性和丰富性,以及防止过拟合,可以对数据进行一些增强操作,例如替换、插入、删除、置换或混合文本中的字或词等。数据增强可以在原始数据上进行,也可以在编码后的数据上进行。数据增强的目标是在不改变文本原始含义和语法结构的前提下,生成新的文本样本。
为了评估LLM的性能和泛化能力,需要将数据划分成训练集、验证集和测试集。训练集用于训练LLM的参数,验证集用于调整LLM的超参数和选择最优模型,测试集用于测试LLM在未见过数据上的表现。
为了让LLM能够执行特定的任务,需要给数据添加相应的标签或目标值,例如分类标签、摘要标签、命名实体标签、情感标签等。标签的质量和准确性对LLM的训练和应用至关重要,因此需要进行仔细的标注和校验。
(2)模型架构与算法
AI大语言模型的架构和算法是决定其性能和功能的关键因素。目前,最流行和最强大的LLM架构是基于Transformer的架构,它是一种利用自注意力机制(self-attention mechanism)来捕捉文本中长距离依赖关系的神经网络。
Transformer架构的优势在于它可以并行处理文本中的所有位置,而不需要像循环神经网络(RNN)那样按顺序处理,从而提高了计算效率和模型容量。此外,Transformer架构还可以很容易地扩展到多模态场景,例如同时处理文本和图像等。
Transformer架构的核心算法是自注意力机制,它是一种计算文本中每个位置与其他位置之间相关性的方法。自注意力机制可以分为三个步骤:查询(query)、键(key)和值(value)。查询是指当前位置的矢量表示,键是指其他位置的矢量表示,值是指其他位置的信息或内容。自注意力机制首先计算查询与所有键之间的点积,然后通过一个缩放因子和一个softmax函数将其转换成注意力权重。最后,自注意力机制将注意力权重与对应的值相乘,并求和得到当前位置的输出矢量。
除了自注意力机制外,Transformer架构还包含了一些其他的算法或技术,例如残差连接、层归一化、前馈网络、位置编码、掩码等。这些算法或技术有助于提升模型的稳定性、泛化能力、表达能力和灵活性等。基于Transformer架构的LLM有很多变体或改进版本,例如BERT、GPT、XLNet、T5等。这些模型在不同的任务、数据集、预训练目标、训练策略等方面有所区别或创新,但都遵循了Transformer架构的基本原理和框架。
(3)标记化处理
标记化允许大语言模型处理不同的文本长度并更有效地适应不同的语言,人工智能模型将句子分解成称为标记(tokens)的单词/子单词(例如,"I don't like"可以分解成""I","don","'t""like"")。这样可以让人工智能更好地理解句子,并将每个标记转换为一组数字,以便它们可以处理。
但是,标记化处理也对模型施加了限制,称为令牌限制。令牌限制(Token limit)是指GPT模型在处理文本时能处理的最大令牌(token)数量。每个GPT模型版本都有一个预设的令牌限制,例如GPT-3的限制为4096个令牌。令牌限制直接影响了模型输入和输出的长度以及模型的训练和推理速度,可以通过调整模型的架构和参数设置来改变令牌限制,以适应不同的应用场景和性能需求。
(4)模型是否具备意识

(本图由newbing生成)
人工智能是否具备人类的意识,是指人工智能是否能够像人类一样具备自我认知、自我驱动、自我评价、自我调节等能力,以及是否能够理解和处理抽象概念、情感、价值观等问题。目前业界的共识是,截至目前,人工智能大语言模型并不具备意识。人工智能大语言模型主要是基于海量数据和深度学习的方法,通过预训练和微调来完成各种自然语言处理任务,如文本生成、问答、翻译等。这些模型虽然在表现上可以达到甚至超越人类的水平,但是在内部机制上并没有真正理解语言和世界,而只是利用了统计规律和模式匹配的技巧。
因此,人工智能大语言模型并不能实现通用人工智能(AGI),也就是能够像人类一样在任何领域和场景都能灵活适应和创造性地解决问题的智能。如前所述,目前的人工智能模型的"神经元"是由Transformer架构组成的。这些架构相当复杂,但是可以通过简单的数学函数来描述。例如,人工智能可以使用前面的标记来预测下一个标记。在这个过程中,它们会同时查看每个标记,而不是像人类那样从左到右或从右到左阅读。请注意,这里所说的"神经元"只是拟人化的表述,实际上是对模型所做的事情的比喻。这些模型并不真正思考,它们不是真正的大脑,不是真正的生物神经元,它们只是人工神经网络,是一串数字和概率函数。
(1)什么是GPT?
GPT的英文全称为Generative Pre-trained Transformer(生成式预训练转换器),是一种基于互联网可用数据训练的文本生成深度学习模型。GPT的基本思想是利用深度学习技术,通过大量的文本数据来训练一个通用的语言模型,然后再根据不同的任务来微调这个模型,从而实现各种自然语言处理的应用。
2017年,谷歌大脑团队在神经信息处理系统大会上发表了一篇名为Attention is All You Need(《自我注意力是你所需要的全部》)的论文,该论文首次提出了基于自我注意力机制(Self-attention)的变换器(Transformer)模型,并首次将其用于NLP,GPT就是一种基于自我注意力机制的变换器(Transformer)模型,它可以让模型在处理每个单词时,关注到与之相关的其他单词,从而捕捉到语言中的长距离依赖和复杂关系,就像我们人类阅读一本书,通过上下文理解字词之间的联系一样。相较于此前的RNN模型,此模型能够同时进行数据计算和模型训练,训练时长更短,并且训练得出的模型可用语法解释,也就是模型具有可解释性。
GPT是一种生成式预训练语言模型。"预训练"是指它在训练之前已经使用了大量的文本数据来初始化它的参数,从而使它具有丰富的语言知识和能力。比如,GPT可以使用维基百科、新闻、小说、社交媒体等各种来源的文本数据来进行预训练,从而学习到各种领域和风格的语言信息。"生成式"是指它可以根据给定的输入(prompt),生成符合语法和逻辑的自然语言输出(response)。比如,我们可以给GPT一个问题,它就可以生成一个答案;我们也可以给GPT一个开头,它就可以生成一段文本;我们还可以给GPT一个主题,它就可以生成一首诗歌等等。
总之,GPT是一种非常强大和灵活的AI大语言模型,它可以处理各种自然语言处理的任务,比如机器翻译、文本摘要、对话系统、知识问答等等。GPT也有不同的版本和规模,比如GPT-1、GPT-2、GPT-3等等。目前最新和最大的版本是GPT-4,是OpenAI于2023年3月14日发布的最先进的AI大语言模型,它有1750亿个参数,使用了45TB的文本数据进行预训练,被认为是目前最接近人类水平的AI大语言模型。
(2)ChatGPT是什么呢?
ChatGPT是由OpenAI公司基于2020年发布的GPT-3模型发布的最新一代的AI语言模型,目前OpenAI公司已经发布基于GPT-4版本的ChatGPT。有关ChatGPT有多火爆就不在这里赘述了,有兴趣的读者可以去阅读其他科普文章。
这款AI语言模型,与过去那些智能语音助手的回答模式有很大的不同------ChatGPT呈现了出人意料的"聪明"。与当前市面上的一些人工智能客服相比较,ChatGPT跨越"人工娱乐",真正触及了人工智能,具有了我们期待的模样。
很多人形容它是一个真正的"六边形AI战士"------不仅能聊天、搜索、翻译,撰写诗词、论文和代码也不在话下,还能开发小游戏、作答美国高考题,甚至能做科研、当医生等。国外媒体评论称,ChatGPT会成为科技行业的下一个颠覆者。
现在的ChatGPT能进行天马行空的长对话,可以回答问题,还能根据人们的要求撰写各种书面材料,如商业计划书、广告宣传材料、诗歌、笑话、计算机代码和电影剧本等。简单来说,ChatGPT具备了类人的逻辑、思考与沟通的能力,并且它的沟通能力在一些领域表现得相当惊人,能与人进行堪比专家级的对话。
ChatGPT还能进行文学创作。比如,给ChatGPT一个话题,它就可以写出小说框架。当用户让ChatGPT以"AI改变世界"为主题写一个小说框架时,ChatGPT清晰地给出了故事背景、主人公、故事情节和结局。如果一次没有写完,ChatGPT还能在"提醒"之下,继续写作,补充完整。
ChatGPT已经具备了一定的记忆能力,能够进行连续对话。有用户在体验ChatGPT之后评价称,ChatGPT的语言组织能力、文本水平、逻辑能力,可以说已经令人感到惊艳了。甚至已经有用户打算把日报、周报、总结等这些文字工作,都交给ChatGPT来辅助完成。
普通的文本创作只是最基本的。ChatGPT还能给程序员编写的代码找Bug。一些程序员在试用后表示,ChatGPT针对他们的技术问题提供了非常详细的解决方案,比一些搜索软件的回答还要靠谱。美国代码托管平台Replit首席执行官Amjad Masad在推特发文称,ChatGPT是一个优秀的"调试伙伴","它不仅解释了错误,而且能够修复错误,并解释修复方法。"
在商业逻辑方面,ChatGPT不仅非常了解自己的优劣势,可以为自己进行竞品分析、撰写营销报告,就连世界经济形势也"了如指掌",能答出自己的见解。
ChatGPT还敢于质疑不正确的前提和假设,主动承认错误以及一些无法回答的问题,主动拒绝不合理的问题,提升了对用户意图的理解,提高了答题的准确性。
chatGPT的功能还有很多,这里就不一一列举,有兴趣的读者可以去深度探索。值得注意的是,为了维护对话中的上下文,ChatGPT依赖于对话历史记录,它由交替的用户和助手消息组成。此历史记录作为输入传递给模型,使其能够生成符合上下文的回应。为ChatGPT设计的提示应考虑对话历史,以帮助模型提供更准确和相关的回应。
(1)BERT
BERT是由谷歌公司在2018年提出的双向编码器表示变换器(Bidirectional Encoder Representations from Transformers),是一种预训练的语言模型,可以用于下游任务的微调或特征提取。Bert模型使用了两个预训练任务,分别是Masked Language Model(MLM)和Next Sentence Prediction(NSP)。MLM任务是在输入文本中随机遮盖一些词,然后让模型根据上下文来预测这些词,从而实现了双向的语言理解。NSP任务是给定两个句子,让模型判断它们是否是连续的,从而学习了句子之间的关系。Bert模型在多个自然语言处理任务上都取得了当时最好的结果。
1. Roberta
Roberta是Facebook在2019年提出的对Bert模型的改进版本,它的全称是Robustly Optimized BERT Pretraining Approach,意思是鲁棒性优化的Bert预训练方法。Roberta模型主要做了以下几点改进:使用了更多更大的数据集进行预训练;使用了更大的batch size和更长的训练时间;使用了动态遮盖机制,即每次输入时都随机遮盖词;移除了NSP任务,因为发现它对下游任务没有帮助;增加了输入序列的长度;使用了字节级别的编码器来处理不同语言。Roberta模型在多个自然语言处理任务上都超越了Bert模型。
(3)Bart
Bart(Bidirectional and Auto-Regressive Transformers)即双向和自回归的变形金刚编码器,是Facebook的AI团队在2019年提出的一种结合了Bert和GPT的预训练模型。Bart模型使用了一个编码器和一个译码器,编码器是双向的,译码器是自回归的,就像GPT一样。Bart模型在训练时会对输入文本进行各种变换,比如遮盖词、删除词、打乱句子顺序等,然后让模型从变换后的文本恢复原始文本。这样做可以让模型学习到更多的语言知识,也可以让模型更适合生成文本的任务。Bart模型在很多生成文本的任务上都表现得很好,比如摘要、翻译、对话等。
(4)文心一言
文心一言是百度公司在2023年3月27日推出的基于ERNIE-GEN的大语言模型,基于飞桨深度学习平台开发,持续从海量数据和大规模知识中融合学习具备知识增强、检索增强和对话增强的技术特色。文心一言可以与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。文心一言是目前国内最受欢迎的生成式人工智能娱乐平台,为用户提供了有趣和个性化的智能服务。
(5)通义千问
通义千问于2023年4月11日正式发布,并于4月27日开放给企业用户测试。通义千问是阿里巴巴达摩院自主研发的超大规模语言模型,号称采用更先进的算法和更优化的模型结构,能够更准确地理解和生成自然语言、代码、表格等文本。通义千问专门为回应人类指令而开发,它在自然语言处理任务中表现出色,可以回答问题、创作文字,还能表达观点、撰写代码,被认为是阿里巴巴打造的中国版ChatGPT。
(6)WeLM
微信语言模型(WeLM)是微信自研的百亿级别大语言模型,可以在零或少样本的情况下完成多种自然语言处理任务,如包括对话、采访、阅读理解、翻译、改写、续写、多语言阅读理解在内的多种NLP任务,并具备记忆能力、自我纠正和检查能力。并且,WeLM具有尺寸合理的优势,在14项中文NLP任务上,WeLM的整体表现超出了所有同大小的模型,甚至能够匹配比它大25倍的模型。WeLM是目前国内最先进的自然语言处理底层技术平台,为微信及其合作伙伴提供了高效和可靠的智能支持。
(本图由newbing生成)
从任务类型角度分,大语言模型的能力主要包括生成式人工智能和判别式人工智能。生成式人工智能可以用来生成各种类型的内容,例如图像、音乐、文本等等。例如,我们可以使用一个生成式人工智能来创建一张大海的图片,甚至可以让这个人工智能为我们创作一首歌曲。这些生成式人工智能本质上是创造东西的人工智能,因为它们可以从头开始生成新的内容,而不是只是对已有的内容进行分类。判别式人工智能主要用于分类事物。例如,我们可以使用一个语言模型来确定一段自然语言文本中蕴含的情感。这种类型的人工智能不是创造东西的,而是根据已知的标准对已有的东西进行分类。
无论是GPT还是火爆全球的ChatGPT,其本质都是AI大语言模型,那么它们能做的事情也就无法超越语言模型的边界。那么语言模型到底能做什么呢?从应用场景角度来分,语言模型可以做的无非三件事:信息形式转换、根据要求产生文本、信息精简输出。
信息形式的转换包括情感分析、机器翻译、语言识别、基因测序和计算机编程等等。在这个信息形式转换的过程中,都或多或少的损失一些信息,例如计算机将唐诗翻译成英语就显得乏味,其中语言所蕴含的文化信息往往就损失掉了。有人会奇怪为什么计算机编程也是信息形式的转换,这其实来源于此前用机器做翻译的灵感。2014年,著名机器翻译专家奥科在Google公司就领导过一个让计算机写Python程序的项目。奥科的想法非常简单,既然能够让计算机将人类语言的文本翻译成另一种人类语言的文本,就应该能将自然语言描述的文本翻译成机器语言,也就是程序。从信息论的角度看,如果有了比较完美的算法,这一类问题都可以得到完美的解决,而这些事情最终机器是要比人类强的。
模型能做的第二类事情是根据要求产生新文本,例如回答问题、回复邮件、创作文案等。这类工作的信息输入量明显少于输出量,这样就会有比较大的不确定性,如果模型中包含很多与提示相关的内容,则会产生高质量的文本,否则,模型给出的答案就会不着边际。例如如果模型学过了某一领域足够多的专业知识,它对于一些专业的问题给出的答案比真正的专家还要好;相反,美国几家大公司的研究发现,模型在做一些小学算术题的时候成绩要比参加研究生入学考试成绩要差得多,原因就是那些小学题模型没见过,而研究生入学考试都是标准化的,很多过去的考试题都可以找到。从信息论的角度来看,不可能通过较少的信息产生更多的信息,因此这类工作或多或少都需要人工干预,因此这类任务的好坏非常依赖于提示工程的好坏。
语言模型做的第三类事情是把更多点信息精简为较少的信息。比如,为一篇文章撰写摘要,读某一个公司的财报等。这类工作的特点是输入的信息比输出的信息要多很多,因此信息量一般都是够用的,只要算法做到好,就不会出现信息不够用的问题。但是信息由多变少的过程中面临一个选择,选择保留哪些信息,删除哪些信息。比如为一本书写一本摘要,不同的人会写出不同的摘要,因为每个人的背景知识不一样,对每一本书的重点知识看法不一样。同样,每个财务分析师专业水平不一样,为同一家公司写出的财报也不一样。计算机在生成摘要的过程中也会产生不同的结果,这要看具体算法是如何设计的,它所依赖的语言模型之前统计过什么信息等等。这类工作计算机做得会比大部分人要好,不仅仅是因为计算机阅读和信息处理的速度快,也因为算法在摘要和分析的时候会更加客观。
了解大语言模型能做什么,擅长做什么,有助于我们更好地掌握提示工程,更好地用好语言模型。
尽管GPT模型在各种应用场景中表现出了强大的能力,它仍然存在一些局限性和偏见。
首先,GPT模型的处理能力受限于固定数量的标记(Tokens),这意味着输入与输出的长度受到制约。其次,尽管GPT能够产生连贯的文本,但它们偶尔可能会输出缺乏常识或与事实相悖的内容,原因在于它们依赖训练数据中的统计模式,而非真正的概念理解。此外,GPT模型可能对输入细微变化敏感,导致不一致的回应。值得关注的是,大型GPT模型可能产生冗长输出,并多次重复相同信息。
其次,GPT模型是基于互联网大量文本数据训练而成的,因此可能包含偏见和刻板印象,从而导致不经意间产生具有偏见或令人反感的输出。了解这些限制和偏差对于有效的提示工程至关重要,因为这将有助于您设计提示,指导模型生成高质量且符合上下文的回应,同时降低潜在风险。
ChatGPT也存在一些局限性,OpenAI公司承认它可能产生"看似合理但不正确或荒谬的答案",这在大型语言模型中颇为常见,这种现象被称为人工智能幻觉。值得关注的是,ChatGPT受限于训练数据中的算法偏差,也可能在涉及人物描述等问题时表现出来。如程序接收到"护士"这一模糊描述,可能会默认这个角色为女性。这是因为它的训练数据来源于互联网,这些数据往往包含了社会普遍存在的刻板印象和性别偏见。在这种情况下,ChatGPT可能无法摆脱训练数据中的偏见,因而在生成文本时反映出这些刻板印象。此外,用户发现ChatGPT在解决复杂数学问题时可能给出错误答案,并在解一元一次方程时陷入循环。
随着我们对提示工程的深入了解,将学习到如何处理GPT和ChatGPT的复杂性,微调提示以提供克服这些限制和偏见的卓越结果。通过掌握这些技术,我们将在从聊天机器人到内容生成的各种应用程序中释放AI语言模型的真正潜力。
下一章 3 提示设计基础
code/s?__biz=MzA5OTcwNDg3OQ==&mid=2247483820&idx=1&sn=fa6bfabad48ead3d66c5003ce240884b&chksm=90ff08eca78881fa56ece4580fde55cb1caa34e625da34bdce548b151cadfeddadb4de6450a9#rd